﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sispe.Entities;
using Sispe.Repository;
using Microsoft.Practices.Unity;

namespace Sispe.BussinesLogic
{
    public class TrabajadorBL:ITrabajadorBL
    {
        [Dependency]
        public ITrabajadorRepository trabajadorRepository { get; set; }

        public List<TRABAJADOR> GetAllFromTrabajador()
        {
            return trabajadorRepository.GetAllFromTrabajador();
        }


        public List<TRABAJADOR> GetAllFromPersonaByDni(string dni)
        {
            return trabajadorRepository.GetAllFromPersonaByDni(dni);
        }

        public List<TRABAJADOR> GetAllFromPersonaByApellidos(string apellidos)
        {
            return trabajadorRepository.GetAllFromPersonaByApellidos(apellidos);
        }

        public List<TRABAJADOR> GetAllFromPersonaByNombres(string nombres)
        {
            return trabajadorRepository.GetAllFromPersonaByNombres(nombres);
        }

        public List<TRABAJADOR> GetAllFromPersonaBySexo(string sexo)
        {
            return trabajadorRepository.GetAllFromPersonaBySexo(sexo);
        }

        public List<TRABAJADOR> GetAllFromPersonaByEstadoCivil(string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByEstadoCivil(estCivil);
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniAndNombres(string dni, string nombres)
        {
            return trabajadorRepository.GetAllFromPersonaByDniAndNombres(dni,nombres);
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniAndApellidos(string dni, string apellidos)
        {
            return trabajadorRepository.GetAllFromPersonaByDniAndApellidos(dni, apellidos);
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniAndSexo(string dni, string sexo)
        {
            return trabajadorRepository.GetAllFromPersonaByDniAndSexo(dni,sexo );
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniAndEstadoCovil(string dni, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByDniAndEstadoCovil(dni, estCivil );
        }

        public List<TRABAJADOR> GetAllFromPersonaByNombreAndApellidos(string nombres, string apellidos)
        {
            return trabajadorRepository.GetAllFromPersonaByNombreAndApellidos(nombres, apellidos );
        }

        public List<TRABAJADOR> GetAllFromPersonaByNombreAndSexo(string nombres, string sexo)
        {
            return trabajadorRepository.GetAllFromPersonaByNombreAndSexo(nombres, sexo);
        }

        public List<TRABAJADOR> GetAllFromPersonaByNombreAndEstadoCivil(string nombres, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByNombreAndEstadoCivil(nombres,estCivil );
        }

        public List<TRABAJADOR> GetAllFromPersonaByApellidosAndSexo(string apellidos, string sexo)
        {
            return trabajadorRepository.GetAllFromPersonaByApellidosAndSexo(apellidos, sexo);
        }

        public List<TRABAJADOR> GetAllFromPersonaByApellidosAndEstadoCivil(string apellidos, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByApellidosAndEstadoCivil(apellidos, estCivil);
        }

        public List<TRABAJADOR> GetAllFromPersonaBySexoAndEstadoCivil(string sexo, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaBySexoAndEstadoCivil(sexo, estCivil);
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniNombresAndApellidos(string dni, string nombres, string apellidos)
        {
            return trabajadorRepository.GetAllFromPersonaByDniNombresAndApellidos(dni, nombres, apellidos);
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniNombresAndSexo(string dni, string nombres, string sexo)
        {
            return trabajadorRepository.GetAllFromPersonaByDniNombresAndSexo(dni, nombres, sexo);
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniNombresAndEstadoCivil(string dni, string nombres, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByDniNombresAndEstadoCivil(dni, nombres, estCivil);
        }

        public List<TRABAJADOR> GetAllFromPersonaByNombresApellidosAndSexo(string nombres, string apellidos, string sexo)
        {
            return trabajadorRepository.GetAllFromPersonaByNombresApellidosAndSexo(nombres, apellidos, sexo);
        }

        public List<TRABAJADOR> GetAllFromPersonaByNombresApellidosAndEstadoCivil(string nombres, string apellidos, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByNombresApellidosAndEstadoCivil(nombres, apellidos, estCivil);
        }

        public List<TRABAJADOR> GetAllFromPersonaByApellidosSexoAndDni(string apellidos, string sexo, string dni)
        {
           return trabajadorRepository.GetAllFromPersonaByApellidosSexoAndDni(apellidos, sexo, dni);
        }

        public List<TRABAJADOR> GetAllFromPersonaByApellidosSexoAndEstadoCivil(string apellidos, string sexo, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByApellidosSexoAndEstadoCivil(apellidos, sexo, estCivil );
        }

        public List<TRABAJADOR> GetAllFromPersonaBySexoEstadoCivilAndDni(string sexo, string estCivil, string dni)
        {
           return trabajadorRepository.GetAllFromPersonaBySexoEstadoCivilAndDni(sexo, estCivil, dni );
        }

        public List<TRABAJADOR> GetAllFromPersonaBySexoEstadoCivilAndNombre(string sexo, string estCivil, string nombres)
        {
            return trabajadorRepository.GetAllFromPersonaBySexoEstadoCivilAndNombre(sexo, estCivil, nombres);
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniNombresApellidosAndSexo(string dni, string nombres, string apellidos, string sexo)
        {
            return trabajadorRepository.GetAllFromPersonaByDniNombresApellidosAndSexo(dni, nombres, apellidos, sexo);
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniNombresApellidosAndEstadoCivil(string dni, string nombres, string apellidos, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByDniNombresApellidosAndEstadoCivil(dni, nombres, apellidos, estCivil);
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniNombresSexoAndEstadoCivil(string dni, string nombres, string sexo, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByDniNombresSexoAndEstadoCivil(dni, nombres, sexo, estCivil);
        }

        public List<TRABAJADOR> GetAllFromPersonaByNombresApellidosSexoAndEstadoCivil(string nombres, string apellidos, string sexo, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByNombresApellidosSexoAndEstadoCivil(nombres, apellidos, sexo, estCivil);
        }

        public List<TRABAJADOR> GetAllFromPersonaByApellidosSexoEstadoCivilAndDni(string apellidos, string sexo, string estCivil, string dni)
        {
            return trabajadorRepository.GetAllFromPersonaByApellidosSexoEstadoCivilAndDni(apellidos, sexo, estCivil, dni);
        }

        public List<TRABAJADOR> GetAllFromPersonaByDniNombresApellidosSexoAndEstadCivil(string dni, string nombres, string apellidos, string sexo, string estCivil)
        {
            return trabajadorRepository.GetAllFromPersonaByDniNombresApellidosSexoAndEstadCivil(dni, nombres, apellidos, sexo, estCivil);
        }


        public List<TRABAJADOR> GetAllFromTrabajadorByNEdad(string nEdad)
        {
            return trabajadorRepository.GetAllFromTrabajadorByNEdad(nEdad);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByRPensionario(string rPensionario)
        {
            return trabajadorRepository.GetAllFromTrabajadorByRPensionario(rPensionario);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorBySocio(string socio)
        {
            return trabajadorRepository.GetAllFromTrabajadorBySocio(socio);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByUbigeo(string ubigeo)
        {
            return trabajadorRepository.GetAllFromTrabajadorByUbigeo(ubigeo);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByRecomendable(string recomendable)
        {
            return trabajadorRepository.GetAllFromTrabajadorByRecomendable(recomendable);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorBySindicato(string sindicato)
        {
            return trabajadorRepository.GetAllFromTrabajadorBySindicato(sindicato);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByNEdadAndRPensionario(string nEdad, string rPensionario)
        {
            return trabajadorRepository.GetAllFromTrabajadorByNEdadAndRPensionario(nEdad, rPensionario);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByNEdadAndSocio(string nEdad, string socio)
        {
            return trabajadorRepository.GetAllFromTrabajadorByNEdadAndSocio(nEdad, socio);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByNEdadAndUbigeo(string nEdad, string ubigeo)
        {
            return trabajadorRepository.GetAllFromTrabajadorByNEdadAndUbigeo(nEdad, ubigeo);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByRPensionarioAndSocio(string rPensionario, string socio)
        {
            return trabajadorRepository.GetAllFromTrabajadorByRPensionarioAndSocio(rPensionario, socio);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByRPensionarioAndUbigeo(string rPensionario, string ubigeo)
        {
            return trabajadorRepository.GetAllFromTrabajadorByRPensionarioAndUbigeo(rPensionario, ubigeo);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorBySocioAndUbigeo(string socio, string ubigeo)
        {
            return trabajadorRepository.GetAllFromTrabajadorBySocioAndUbigeo(socio, ubigeo);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByNEdadRPensionarioAndSocio(string nEdad, string rPensionariom, string socio)
        {
            return trabajadorRepository.GetAllFromTrabajadorByNEdadRPensionarioAndSocio(nEdad, rPensionariom, socio);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByNEdadRPensionarioAndUbigeo(string nEdad, string rPensionariom, string ubiego)
        {
            return trabajadorRepository.GetAllFromTrabajadorByNEdadRPensionarioAndUbigeo(nEdad, rPensionariom, ubiego);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByNEdadSocioAndUbigeo(string nEdad, string socio, string ubigeo)
        {
            return trabajadorRepository.GetAllFromTrabajadorByNEdadSocioAndUbigeo(nEdad, socio, ubigeo);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByRPensionarioSocioAndUbigeo(string rPensionario, string socio, string ubigeo)
        {
            return trabajadorRepository.GetAllFromTrabajadorByRPensionarioSocioAndUbigeo(rPensionario, socio, ubigeo);
        }

        public List<TRABAJADOR> GetAllFromTrabajadorByNEdadRPensionarioSocioAndUbigeo(string nEdad, string rPensionariom, string socio, string ubigeo)
        {
            return trabajadorRepository.GetAllFromTrabajadorByNEdadRPensionarioSocioAndUbigeo(nEdad, rPensionariom, socio, ubigeo);
        }


        public void AddTrabajador(TRABAJADOR trabajador)
        {
            trabajadorRepository.AddTrabajador(trabajador);
        }

        public void UpdateTrabajador(TRABAJADOR trabajador)
        {
            trabajadorRepository.UpdateTrabajador(trabajador);
        }

        public TRABAJADOR GetFromTrabajadorById(int id)
        {
            return trabajadorRepository.GetFromTrabajadorById(id);
        }




        public TRABAJADOR DownloadCurriculum(int id)
        {
            return trabajadorRepository.DownloadCurriculum(id);
        }
    }
}
